# 数据在计算机中的存储，存的都是二进制数(0101......)

#十进制，二进制，八进制，十六进制
# 1.十进制
# 基数：0，1，2，3，4，5，6，7，8，9
# 特点：逢10进1
# 234 = 4 + 30 + 200 = 4*(10^0) + 3*(10^1) + 2*(10^2)

110
print(110)
print(0b110)
print(0o110)
print(0x110)

# 2.二进制
# 基数：0，1
# 特点：逢2进1  
# 10的二进制：1010
# 二进制转十进制：1101 = 1*(2^0)+0*(2^1)+1*(2^2)+1*(2^3) = 13
# 1011 = 2^0 + 2^1 + 2^3 = 11
# 11011  = 27
# 十进制转二进制：整除取余法    90 -> 1011010  121 -> 1111001
# 二进制转八进制：三位的二进制转成一位的八进制  001 110 110 010 -> 1662   111 101 001 -> 751
# 八进制转二进制：一位的八进制转成三位的二进制  56 -> 101110
# 二进制转十六进制：0011 1011 0010 ->3b2
# 十六进制转二进制：239 -> 0010 0011 1001
# 二进制数需要加前缀0b或者0B
0b110  

# 3.八进制
# 基数：0，1，2，3，4，5，6，7
# 特点：逢8进1
# 八进制转十进制：21 -> 1*(8^0) + 2*(8^1) = 17   111->1+8^1+1*8^2 = 73
# 十进制转八进制：整除取余法  90 -> 132
# 八进制和十六进制之间的相互转换，可以先转成二进制，再转
# 八进制数前需要加0o或者0O
0o110

# 4.十六进制
# 基数：0，1，2，3，4，5，6，7，8，9，a,b,c,d,e,f(A,B,C,D,E,F)
# 特点：逢16进1
# 十六进制转10进制：2f -> 15*(16^0) + 2*(16^1) = 47
# 十进制转十六进制：整除取余法   90 -> 5A
# 十六进制前加0x或者0X
0x110

# 5.进制转换相关函数
# 如果不使用函数特意的转换，所有类型的进制数值，最终都是以十进制数进行存储

# bin()将括号中的数转换成二进制
print(bin(110))

# oct()将括号中的数转换成八进制
print(oct(0x120))

# hex()将括号中的数转换成十六进制
print(hex(120))

# 练习
# 1230 转换成二进制，八进制和十六进制   



